const { defineConfig } = require('@vue/cli-service')
class MyPlugin{
  constructor(name,age){
    this.name = name;
    this.age = age;
  }
  apply(){
    console.log('MyPlugin')
  }
}
module.exports = defineConfig({
  transpileDependencies: true,
  chainWebpack:(config)=>{
    config
    .entry('app')
    .clear()// 清除老数组
    .add('./src/main.js')//添加新的入口文件

    config.module
    .rule('vue')//找到vue的规则 
    .use('vue-loader')//找到vue-loader
    .loader('vue-loader')
    .tap(options=>{//修改它的选项
      options.age = 18;
      console.log(options)
      return options;
    })

    config//添加一个新的插件到plugins中
    .plugin('my-plugin')//插件的名字叫my-plugin,名字可以唯 一的标识一个插件，以后进行修改
    .use(MyPlugin,['我的插件',18])//指定插件的构造函数和参数

    config.output.filename('[name].[hash:8].js');
  }
 /*  
 chainWebpack:(config)=>{
    config.module
    .rule('vue')//找到vue这个规则 
    .use('vue-loader')
      .tap(options => {
        options.age = 18;
        // 修改它的选项...
        return options
      })
  }
  configureWebpack:{
    plugins:[
      new MyPlugin()
    ],
    resolve:{
      alias:{
        '@assets':'@/assets',
        '@components':'@/components'
      }
    }
  }
  configureWebpack:(config)=>{
    config.plugins.push(new MyPlugin());
    config.resolve.alias['@assets']='@/assets';
    config.resolve.alias['@components']='@/components'
  }
   */
})
